
//
//  hmViewModel.swift
//  微博01
//
//  Created by 牛威 on 15/12/11.
//  Copyright © 2015年 牛威. All rights reserved.
//

import UIKit


class HMViewModel : CustomStringConvertible {

    /// 构造函数
    
    var homeModel : NWHomeModel

    init(homeModel : NWHomeModel){
        
        self.homeModel = homeModel
        
        if  let urls = homeModel.retweeted_status?.pic_urls ?? homeModel.pic_urls {
        
//        if urls!.count > 0 { //说明有配图
            
            //创建缩略图数组
            
            thumbnailUrls = [NSURL]()
        
           //遍历字典数组 强行解包 --->数组如果可选不允许遍历,原因---->数组是通过下标来检索数据
            
            for dict in urls {
                
                //强行解包 字典是通过key来取值,如果key错误,会返回nil
            
              let url = NSURL(string: dict["thumbnail_pic"]!)
                
                //上面生成的url是可选值,我们相信服务器返回的url一定有值 字符串一定会生成所以再次强行解包
                
                thumbnailUrls?.append(url!)
            }
        
        }
        
    }
    
    //缩略数组 存储性属性 非非非常重要 ----->转发微博使用
    //如果是转发微博一定没有图
    //如果是原创微博 可有可无  retweeted_status中可有可无
    //一条微博最多只有一个 pic_urls数组
    //要么原创有图要么微博有图 所以把两个数据存到一个数组里 没有必要开两个存储空间
    
    var thumbnailUrls : [NSURL]?
    
    //转发微博text
    
    var retweedText : String? {
        
        guard let zf = homeModel.retweeted_status else {
        
          return nil
        
        }
        
       return "@" + (zf.user?.screen_name ?? "") + ":" + (zf.text ?? "")
        
    }
    
    var cellID : String {
    
        return homeModel.retweeted_status != nil ? NWHomeRetweedCellID : NWHomeTableCell
    
    }

    
    
 /// 缓存行高
    
    lazy var rowHeight : CGFloat = {
        
        var cell : NWHomeCell
        
        if self.homeModel.retweeted_status != nil { //说明为转发微博
        
           cell = NWHomeRetweedCell(style: .Default, reuseIdentifier: NWHomeRetweedCellID)
            
        } else { //说明为原创微博
        
           cell = NWHomeNormalCell(style: .Default, reuseIdentifier: NWHomeTableCell)
        
        }
            
        return cell.rowHeight(self)

    
    
    }()
    
    
    //用户头像url
    
    var userIconUrl : NSURL {
    
    
      return NSURL(string: homeModel.user?.profile_image_url  ?? "")!
    
    }
    //用户默认头像
    
    var userDefaultImage : UIImage {
    
       return UIImage(named: "avatar_default_big")!
    
    }
    
    
    //用户会员图标
    var userMemberImage : UIImage? {
    
        if homeModel.user?.mbrank > 0 && homeModel.user?.mbrank < 7 {
            
            //这是个坑 如果homeModel.user!.mbrank !换成?就出不来图标 
        
         return UIImage(named: "common_icon_membership_level\(homeModel.user!.mbrank)")
        
        }
      return nil
    
    }
    
    
    
    //认证图标     /// 认证类型，-1：没有认证，0，认证用户，2,3,5: 企业认证，220: 达人

    
    var userVipImage : UIImage? {
    
        switch (homeModel.user?.verified_type ?? -1) {
            
        case 0:      return UIImage(named: "avatar_vip")
        case 2,3,5:  return UIImage(named: "avatar_enterprise_vip")
        case 220:    return UIImage(named: "avatar_grassroot")
            
        default:
            return nil
        }
    
    }
    
    
     var description : String {
        
        //description不是可选的可以直接+拼接字符串 让打印看的更清楚 as桥接作用
        //thumbnailUrls ?? [] as NSArray 解读 前者是个可选值 所以加以判断 要是数组为空拿一个空数组替换 反之则转化为一个数组
    
       return homeModel.description + "配图数组====\(thumbnailUrls ?? [] as NSArray)"
    
    }

}
